package ninth.线程操作的相关方法;

public class 判断线程是否启动 {
    public static void main(String[] args) {
        MyThread mt = new MyThread();   //实例化对象
        Thread t = new Thread(mt, "线程");//实例化Thread对象
        System.out.println("线程开始执行之前-->"+t.isAlive());  //判断是否启动
        t.start();      //启动线程
        System.out.println("线程开始执行之后："+t.isAlive());    //判断是否启动
        for (int i = 0; i <3 ; i++) {                         //输出
            System.out.println("main 运行 --> "+i);
        }
        System.out.println("代码执行之后 --> "+t.isAlive());  //后面的输出结果不确定
    }
}
/**
 * 上面的输出结果是不确定的，有可能到最后线程已经u存货了，但也有可能继续存活，这就要看哪个线程先执行完
 *
 * 注意：
 * 主线程有可能比其他线程先执行完
 * 因为线程操作的不确定性，所以主线程有可能最先执行完，此时其他线程不会受到任何影响，也不会随着主线程的结束而结束
 *
 */

/*
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=54623:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 ninth.线程操作的相关方法.判断线程是否启动
线程开始执行之前-->false
线程开始执行之后：true
main 运行 --> 0
main 运行 --> 1
main 运行 --> 2
代码执行之后 --> true
线程运行，i=0
线程运行，i=1
线程运行，i=2

Process finished with exit code 0

 */